In dieser Phase sammeln wir Informationen über das Zielsystem. Wir beginnen mit der Identifizierung des Hosts im Netzwerk und seiner grundlegenden Eigenschaften.
ARP-Scan identifiziert die IP-Adresse 192.168.2.115 und die zugehörige MAC-Adresse. Der Hersteller der Netzwerkkarte ist PCS Systemtechnik GmbH. Diese Information kann nützlich sein, um das Betriebssystem oder die Art des Geräts zu bestimmen.
Der Eintrag in der /etc/hosts-Datei weist darauf hin, dass die IP-Adresse 192.168.2.115 dem Hostnamen commandinjection.vln zugeordnet ist. Dies ermöglicht uns, den Hostnamen anstelle der IP-Adresse zu verwenden.
Dieser Nmap-Scan liefert detaillierte Informationen über die offenen Ports, die laufenden Dienste und die Versionen der Software auf dem Zielsystem. Die Ergebnisse zeigen, dass SSH (Port 22), HTTP (Port 80), MySQL (Port 3307) und mehrere andere Dienste auf ungewöhnlichen Ports (8000, 8080, 8081, 8089, 8789, 10000) laufen. Besonders interessant sind die HTTP-Dienste auf den Ports 80, 8000, 8080, 8081, 8089 und 10000, da diese potenzielle Angriffspunkte darstellen. Die identifizierten Softwareversionen (z.B. OpenSSH 5.9p1, Apache httpd 2.2.22, CherryPy 3.1.2, Zope httpd 2.12.1, TwistedWeb httpd 8.1.0, MiniServ 1.580) können auf bekannte Schwachstellen überprüft werden.
Empfehlung: Es ist ratsam, die Software auf dem Zielsystem auf die neuesten Versionen zu aktualisieren, um bekannte Schwachstellen zu beheben. Zusätzlich sollten unnötige Dienste deaktiviert und die Konfiguration der verbleibenden Dienste gehärtet werden, um die Angriffsfläche zu reduzieren.
In dieser Phase untersuchen wir die Webanwendungen auf dem Zielsystem genauer, um potenzielle Schwachstellen zu identifizieren.
Nikto identifiziert verschiedene potenzielle Schwachstellen, darunter fehlende Clickjacking- und Content-Type-ptions-Header, Directory Indexing, eine veraltete Apache-Version und die Verfügbarkeit von Konfigurationsdateien. Besonders kritisch ist die Fundstelle von /#wp-config.php# , da diese Datei potenziell Datenbank-Zugangsdaten enthalten könnte.
Empfehlung: Die fehlenden Header sollten hinzugefügt, Directory Indexing deaktiviert und die Apache-Version aktualisiert werden. Der Zugriff auf sensitive Konfigurationsdateien sollte eingeschränkt werden.
Gobuster entdeckt verschiedene interessante Dateien und Verzeichnisse, darunter web.config, install.sql, parameters.xml, manifest.xml und das sugarcrm-Verzeichnis. Das Vorhandensein von install.sql deutet auf eine möglicherweise unvollständige Installation hin, während web.config und parameters.xml sensible Konfigurationsdaten enthalten könnten. Das sugarcrm-Verzeichnis deutet auf die Verwendung von SugarCRM hin, was weitere Angriffsmöglichkeiten eröffnen könnte.
Empfehlung: Der Zugriff auf die entdeckten Dateien und Verzeichnisse sollte eingeschränkt und die Konfiguration von SugarCRM gehärtet werden. Eine unvollständige Installation sollte abgeschlossen oder entfernt werden.
Der Zugriff auf die SugarCRM-Login-Seite bestätigt die Verwendung von SugarCRM. Dies eröffnet die Möglichkeit, Brute-Force-Angriffe auf das Login-Formular durchzuführen oder nach bekannten Schwachstellen in SugarCRM zu suchen.
In dieser Phase versuchen wir, uns Zugriff auf das System zu verschaffen, indem wir die identifizierten Schwachstellen ausnutzen.
Hydra wird verwendet, um einen Brute-Force-Angriff auf das SugarCRM-Login-Formular durchzuführen. Es werden verschiedene Passwörter aus der rockyou.txt-Wordlist ausprobiert. Leider war der Angriff nicht erfolgreich.
Empfehlung: Es sollten Maßnahmen ergriffen werden, um Brute-Force-Angriffe zu verhindern, z.B. durch das Implementieren von Account-Lockout-Mechanismen und die Verwendung starker Passwörter.
Hier wird versucht, über die Datei `sample.config_si.php` und den Parameter `FUZZ` auf die `/etc/passwd` zuzugreifen. Durch das Anhängen von `../../../../../../../../etc/passwd` soll auf die Datei zugegriffen werden. Dieser Angriff war leider nicht erfolgreich.
Empfehlung: Die Datei `sample.config_si.php` sollte auf Sicherheitslücken untersucht und der Zugriff auf sensible Parameter eingeschränkt werden.
Nachdem wir verschiedene Angriffsvektoren untersucht haben, konzentrieren wir uns auf die Möglichkeit einer Command Injection. Wir verwenden einen einfachen HTTP-Request, um zu überprüfen, ob wir Befehle auf dem Zielsystem ausführen können.
Wir senden einen HTTP-Request an die SugarCRM-Installation mit einem manipulierten Parameter. Der Parameter `%27=id` versucht, den Befehl `id` über eine Command Injection auszuführen. Wenn die Anwendung anfällig für Command Injection ist, wird die Ausgabe des `id`-Befehls in der Antwort angezeigt.
Erwartetes Ergebnis: Wenn die Anwendung anfällig ist, wird die Ausgabe des `id`-Befehls angezeigt, z.B. `uid=33(www-data) gid=33(www-data) groups=33(www-data)`. Dies würde bestätigen, dass wir erfolgreich einen Befehl auf dem Zielsystem ausführen können.
Risikobewertung: Eine erfolgreiche Command Injection ermöglicht es Angreifern, beliebige Befehle auf dem Zielsystem auszuführen. Dies kann zu Datenverlust, Systemkompromittierung und vollständiger Übernahme des Systems führen.
Empfehlungen: Die Anwendung sollte auf Command Injection-Schwachstellen überprüft und entsprechende Schutzmaßnahmen implementiert werden, z.B. durch das Validieren und Bereinigen von Eingaben und die Verwendung von sicheren APIs zur Befehlsausführung.